SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE [dbo].[SP_TMDOCU_PROV_Q21]
/*--------------------------------------------------------*/
/*---Empresa               OFISIS S.A.                	--*/
/*---PROVnte               OFISIS		      	--*/
/*---Sistema               Tesoreria                  	--*/
/*---M”dulo                Empresa                    	--*/
/*---Programa              CUENTA CORRIENTE PROVEEDOR 	--*/
/*---Script                SP_TMDOCU_PROV_Q21.sql     	--*/
/*---Nombre SP             SP_TMDOCU_PROV_Q21         	--*/
/*---Desarrollado por      Reynaldo Menacho Luyo      	--*/
/*---Fecha Creaci”n        03/01/2001                 	--*/
/*---Base Datos            SQL SERVER 		       	--*/
/*---Versi”n               2005                        	--*/
/*---Invoca a SP                                      	--*/
/*--------------------------------------------------------*/

/*-------------------------------------------------------*/
/*---Modificado 1 por     :Reynaldo Menacho L.				 --*/
/*---Fecha Modificaci÷n   :08/03/2002 			 --*/ 
/*---Detalle Modificaci÷n : MANEJO DE VARIAS MONEDAS	 --*/
/*-------------------------------------------------------*/

/*-------------------------------------------------------*/
/*---Drop Proc SP_TMDOCU_PROV_Q21                      --*/
/*---Grant Execute on SP_TMDOCU_PROV_Q21 to public         --*/ 
/*---SP_TMDOCU_PROV_Q21 '01', NULL ,"'FAC', 'LET',  'NCR',  'ANT'", NULL,'T','E','2001/01/01', 
'2002/08/01','2002/08/01',NULL,'1', 'P', 'D', 'SOL', 'N', 0  --*/
/*-------------------------------------------------------*/


@ISCO_EMPR 	TD_VC_002,
@ISCO_PROV 	TD_VC_020,
@ISDE_CODI 	VARCHAR(500),
@ISCO_MONE 	TD_VC_003,
@ISTI_SALD	TD_VC_001,
@ISFL_FECH	TD_VC_001,
@IDFE_INIC 	TD_DT_001,
@IDFE_FINA 	TD_DT_001,
@IDFE_CANC	TD_DT_001,
@ISCO_TIPO_OPER TD_VC_003,
@ISDE_ORDE	TD_VC_001,
@ISTI_AUXI_PROV	TD_VC_001,
@ISTI_REPO 	TD_VC_003,
@ISCO_MONE_PRES TD_VC_003,
@ISST_USUA	TD_VC_001,
@INFA_USUA	TD_NU_009_004
AS

 CREATE TABLE #TWDOCU_PROV_Q21_1 
 ( CO_EMPR      varchar(3) NULL,
   CO_TIPO_DOCU	varchar(3)  NULL ,
   NU_DOCU_PROV	varchar(20)  NULL,
   CO_PROV	varchar(20) NULL ,
   FE_EMIS	datetime NULL,
   FE_VENC	datetime NULL,
   CO_TIPO_OPER varchar(3) NULL,
   CO_MONE	varchar(03) NULL,
   FA_TIPO_CAMB	numeric(9,4) NULL,
   IM_CXPA	numeric(16,4) DEFAULT 0,
   IM_PAGO	numeric(16,4) DEFAULT 0,
   IM_CXPA_CONV	numeric(16,4) DEFAULT 0,
   IM_PAGO_CONV	numeric(16,4) DEFAULT 0,
   IM_CONV	numeric(16,4) DEFAULT 0,
   TI_DETA	varchar(1) NULL,
   ST_FLAG	varchar(1) NULL)



CREATE TABLE #TWDOCU_PROV_Q21_2 
 ( CO_EMPR      varchar(3) NULL,
   CO_PROV	varchar(20) NULL,
   CO_MONE      varchar(3) NULL, 
   IM_SAIN	numeric(16,4) NULL,
   IM_SAIN_CONV	numeric(16,4) NULL)

 CREATE TABLE #TWDOCU_PROV_Q21_3 
 ( CO_EMPR      varchar(3) NULL,
   CO_TIPO_DOCU	varchar(3)  NULL ,
   NU_DOCU_PROV	varchar(20)  NULL,
   CO_PROV	varchar(20) NULL ,
   FE_EMIS	datetime NULL,
   FE_VENC	datetime NULL,
   CO_TIPO_OPER varchar(3) NULL,
   CO_MONE	varchar(03) NULL,
   FA_TIPO_CAMB	numeric(9,4) NULL,
   IM_SAIN	numeric(16,4) DEFAULT 0,
   IM_SAIN_CONV	numeric(16,4) DEFAULT 0,
   IM_CXPA	numeric(16,4) DEFAULT 0,
   IM_PAGO	numeric(16,4) DEFAULT 0,
   IM_CXPA_CONV	numeric(16,4) DEFAULT 0,
   IM_PAGO_CONV	numeric(16,4) DEFAULT 0,
   IM_CONV	numeric(16,4) DEFAULT 0,
   IM_CONV_TOTA	numeric(16,4) DEFAULT 0,
   TI_DETA_PROV varchar(1)  NULL,
   TI_DETA_EMPR varchar(1)  NULL,
   TI_DETA_GENE varchar(1)  NULL)

DECLARE 

@VSTI_CAMB	TD_VC_001,
@VSTI_ORIG	TD_VC_001,
@VSDE_ORDE	TD_VC_050,
@VSFE_INIC	TD_VC_010,
@VSFE_FINA	TD_VC_010,
@VNIM_CXPA_CONV TD_NU_016_004,
@VNIM_PAGO_CONV TD_NU_016_004,
@VNFE_0001      TD_IN_001, 

@CSCO_EMPR  	TD_VC_002,
@CSCO_PROV  	TD_VC_020,
@CSCO_TIPO_DOCU	TD_VC_003,
@CSNU_DOCU_PROV	TD_VC_020,
@CSCO_MONE      TD_VC_003,
@CNIM_CXPA	TD_NU_016_004,
@CNIM_PAGO	TD_NU_016_004,
@CDFE_EMIS      TD_DT_001,
@CNFA_TIPO_CAMB TD_NU_009_004,

@CSTI_DETA   TD_VC_002,

@OSTI_DOCU_LETR TD_VC_003,
@OSTI_DOCU_NCRE	TD_VC_003,
@OSTI_DOCU_OCMP	TD_VC_003,
@OSTI_DOCU_CRET	TD_VC_003


EXEC SP_TTDOCU_CNTB_Q01 4, @OSTI_DOCU_NCRE OUTPUT
EXEC SP_TTDOCU_CNTB_Q01 6, @OSTI_DOCU_LETR OUTPUT
EXEC SP_TTDOCU_CNTB_Q01 22, @OSTI_DOCU_CRET OUTPUT

-- TIPOS DE DETALLE(TI_DETA = '1' AL '7')
--1.- DOCS EMITIDOS EN ESOS MESES					
--2.- PAGOS BANCOS / CAJA
--3.- APLICACIONES DE NCR A DOCUMENTOS
--4.- APLICACIONES DE OCM A DOCUMENTOS
--5.- CANJES
--6.- RENOVACIONES

--1.- DOCS EMITIDOS EN ESOS MESES
-- TMDOCU_PROV

IF @ISFL_FECH = 'E'
  INSERT INTO #TWDOCU_PROV_Q21_1 
  (CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_EMIS, FE_VENC,
  CO_MONE, CO_TIPO_OPER, FA_TIPO_CAMB, IM_CXPA,  TI_DETA)

  Select T1.CO_EMPR, T1.CO_TIPO_DOCU , T1.NU_DOCU_PROV , T1.CO_PROV, T1.FE_EMIS, T1.FE_VENC,
  T1.CO_MONE, T1.CO_TIPO_OPER, T1.FA_TIPO_CAMB,
  ( PatIndex(T2.ST_SIGN,'S') - PatIndex(T2.ST_SIGN,'N') ) * T1.IM_TOTA,
  '1'
  From  TMDOCU_PROV T1, TTDOCU_CNTB T2
  Where T1.CO_EMPR = @ISCO_EMPR
  AND ((@ISCO_PROV IS NOT NULL AND RTRIM(T1.CO_PROV) = RTRIM(@ISCO_PROV)) OR @ISCO_PROV IS NULL)
  AND ((@ISCO_MONE IS NOT NULL AND T1.CO_MONE = @ISCO_MONE) OR @ISCO_MONE IS NULL)
  AND ((@ISCO_TIPO_OPER IS NOT NULL AND T1.CO_TIPO_OPER = @ISCO_TIPO_OPER) OR @ISCO_TIPO_OPER IS NULL)  
  AND PatIndex( '%'+T1.CO_TIPO_DOCU+'%', @ISDE_CODI )>0 
  And T1.FE_EMIS <= @IDFE_FINA
  And T1.CO_ESTA_DOCU != 'ANU'
  And T1.CO_TIPO_DOCU != 'OCM' 
  And T1.CO_TIPO_DOCU != 'OSR'
  And T1.CO_TIPO_DOCU != 'ANT'	
  AND T1.CO_TIPO_DOCU = T2.TI_DOCU


IF @ISFL_FECH = 'V'
BEGIN
  INSERT INTO #TWDOCU_PROV_Q21_1 
  (CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_EMIS, FE_VENC,
  CO_MONE, CO_TIPO_OPER, FA_TIPO_CAMB, IM_CXPA,  TI_DETA)
  Select T1.CO_EMPR, T1.CO_TIPO_DOCU , T1.NU_DOCU_PROV , T1.CO_PROV, T1.FE_EMIS, T1.FE_VENC,
  T1.CO_MONE, T1.CO_TIPO_OPER, T1.FA_TIPO_CAMB,
 ( PatIndex(T2.ST_SIGN,'S') - PatIndex(T2.ST_SIGN,'N') ) * T1.IM_TOTA,
  '1'
  From  TMDOCU_PROV T1, TTDOCU_CNTB T2
  Where T1.CO_EMPR = @ISCO_EMPR
  AND ((@ISCO_PROV IS NOT NULL AND RTRIM(T1.CO_PROV) = RTRIM(@ISCO_PROV)) OR @ISCO_PROV IS NULL)
  AND ((@ISCO_MONE IS NOT NULL AND T1.CO_MONE = @ISCO_MONE) OR @ISCO_MONE IS NULL)
  AND ((@ISCO_TIPO_OPER IS NOT NULL AND T1.CO_TIPO_OPER = @ISCO_TIPO_OPER) OR @ISCO_TIPO_OPER IS NULL)  
  AND PatIndex( '%'+T1.CO_TIPO_DOCU+'%', @ISDE_CODI )>0 
  And T1.FE_VENC <= @IDFE_FINA
  And T1.CO_ESTA_DOCU != 'ANU'
  And T1.CO_TIPO_DOCU != 'OCM' 
  And T1.CO_TIPO_DOCU != 'OSR'
  And T1.CO_TIPO_DOCU != 'ANT'	
  AND T1.CO_TIPO_DOCU = T2.TI_DOCU


  If PatIndex('%LET%', @ISDE_CODI) > 0 
 INSERT INTO #TWDOCU_PROV_Q21_1 
  (CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_EMIS, FE_VENC, 
  CO_MONE, CO_TIPO_OPER, FA_TIPO_CAMB, IM_CXPA,  TI_DETA)
  Select T1.CO_EMPR, @OSTI_DOCU_LETR, T1.NU_LETR_PROV, T1.CO_PROV, T1.FE_EMIS, T1.FE_VENC,
  T1.CO_MONE, T1.CO_TIPO_OPER, T1.FA_TIPO_CAMB, T1.IM_TOTA, 
  '1'
  From   TMLETR_PROV T1
  Where T1.CO_EMPR = @ISCO_EMPR
  AND ((@ISCO_PROV IS NOT NULL AND RTRIM(T1.CO_PROV) = RTRIM(@ISCO_PROV)) OR @ISCO_PROV IS NULL)
  AND ((@ISCO_MONE IS NOT NULL AND T1.CO_MONE = @ISCO_MONE) OR @ISCO_MONE IS NULL)
  AND ((@ISCO_TIPO_OPER IS NOT NULL AND T1.CO_TIPO_OPER = @ISCO_TIPO_OPER) OR @ISCO_TIPO_OPER IS NULL)
  --AND PatIndex(@ISDE_CODI_PROV , T1.TI_PROV) >0 
  And T1.FE_VENC <= @IDFE_FINA
  And T1.CO_ESTA_DOCU != 'ANU'
END


IF @ISFL_FECH = 'R'
  INSERT INTO #TWDOCU_PROV_Q21_1 
  (CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_EMIS, FE_VENC,
  CO_MONE, CO_TIPO_OPER, FA_TIPO_CAMB, IM_CXPA,  TI_DETA)
  Select T1.CO_EMPR, T1.CO_TIPO_DOCU , T1.NU_DOCU_PROV , T1.CO_PROV, T1.FE_EMIS, T1.FE_VENC,
  T1.CO_MONE, T1.CO_TIPO_OPER, T1.FA_TIPO_CAMB,
  ( PatIndex(T2.ST_SIGN,'S') - PatIndex(T2.ST_SIGN,'N') ) * T1.IM_TOTA,
  '1'
  From  TMDOCU_PROV T1, TTDOCU_CNTB T2
  Where T1.CO_EMPR = @ISCO_EMPR
  AND ((@ISCO_PROV IS NOT NULL AND RTRIM(T1.CO_PROV) = RTRIM(@ISCO_PROV)) OR @ISCO_PROV IS NULL)
  AND ((@ISCO_MONE IS NOT NULL AND T1.CO_MONE = @ISCO_MONE) OR @ISCO_MONE IS NULL)
  AND ((@ISCO_TIPO_OPER IS NOT NULL AND T1.CO_TIPO_OPER = @ISCO_TIPO_OPER) OR @ISCO_TIPO_OPER IS NULL)  
  AND PatIndex( '%'+T1.CO_TIPO_DOCU+'%', @ISDE_CODI )>0 
  And T1.FE_REGI_COMP <= @IDFE_FINA
  And T1.CO_ESTA_DOCU != 'ANU'
  And T1.CO_TIPO_DOCU != 'OCM' 
  And T1.CO_TIPO_DOCU != 'OSR'
  And T1.CO_TIPO_DOCU != 'ANT'	
  AND T1.CO_TIPO_DOCU = T2.TI_DOCU


IF @ISFL_FECH = 'E' OR @ISFL_FECH = 'R'
  If PatIndex('%LET%', @ISDE_CODI) > 0 
  INSERT INTO #TWDOCU_PROV_Q21_1 
  (CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_EMIS, FE_VENC,
  CO_MONE, CO_TIPO_OPER, FA_TIPO_CAMB, IM_CXPA,  TI_DETA)
  Select T1.CO_EMPR, @OSTI_DOCU_LETR, T1.NU_LETR_PROV, T1.CO_PROV, T1.FE_EMIS, T1.FE_VENC,
  T1.CO_MONE, T1.CO_TIPO_OPER, T1.FA_TIPO_CAMB, T1.IM_TOTA, 
  '1'
  From   TMLETR_PROV T1
  Where T1.CO_EMPR = @ISCO_EMPR
  AND ((@ISCO_PROV IS NOT NULL AND RTRIM(T1.CO_PROV) = RTRIM(@ISCO_PROV)) OR @ISCO_PROV IS NULL)
  AND ((@ISCO_MONE IS NOT NULL AND T1.CO_MONE = @ISCO_MONE) OR @ISCO_MONE IS NULL)
  AND ((@ISCO_TIPO_OPER IS NOT NULL AND T1.CO_TIPO_OPER = @ISCO_TIPO_OPER) OR @ISCO_TIPO_OPER IS NULL)
  --AND PatIndex(@ISDE_CODI_PROV , T1.TI_PROV) >0 
  And T1.FE_EMIS <= @IDFE_FINA
  And T1.CO_ESTA_DOCU != 'ANU'


--2.- PAGOS BANCOS / CAJA

INSERT INTO #TWDOCU_PROV_Q21_1 
(CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_EMIS, 
CO_MONE, FA_TIPO_CAMB, IM_PAGO,  TI_DETA)
Select T1.CO_EMPR, T1.TI_DOCU_ENTI, T1.NU_DOCU_ENTI, T1.CO_ENTI, T2.FE_OPER,
T4.CO_MONE, T2.FA_TIPO_CAMB,
/*( ( PatIndex(T5.ST_SIGN,'S') - PatIndex(T5.ST_SIGN,'N') )*PatIndex(T1.TI_MOVI_BANC,'E')+
  ( PatIndex(T5.ST_SIGN,'S') - PatIndex(T5.ST_SIGN,'N') )*PatIndex(T1.TI_MOVI_BANC,'I')) */
( PatIndex(T5.ST_SIGN,'S') - PatIndex(T5.ST_SIGN,'N')) * 
( PatIndex(T1.ST_CIER_DOCU, 'N') * T1.IM_CONV_DOCU +
  PatIndex(T1.ST_CIER_DOCU, 'S') * T1.IM_SALD_DOCU ),
'2'
From  TDMOVI_BANC T1, TCMOVI_BANC T2, TMCNTA_BANC T3, TMDOCU_PROV T4, TTDOCU_CNTB T5
Where  T4.CO_EMPR = @ISCO_EMPR
AND ((@ISCO_PROV IS NOT NULL AND RTRIM(T4.CO_PROV) = RTRIM(@ISCO_PROV)) OR @ISCO_PROV IS NULL)
AND ((@ISCO_MONE IS NOT NULL AND T4.CO_MONE = @ISCO_MONE) OR @ISCO_MONE IS NULL)
AND ((@ISCO_TIPO_OPER IS NOT NULL AND T4.CO_TIPO_OPER = @ISCO_TIPO_OPER) OR @ISCO_TIPO_OPER IS NULL) 
AND PatIndex( '%'+T4.CO_TIPO_DOCU+'%', @ISDE_CODI)>0 
And 	T1.TI_ENTI = @ISTI_AUXI_PROV
And 	T2.FE_OPER  <= @IDFE_CANC
And 	T2.TI_SITU = 'ACT' 
And    T1.CO_EMPR = T2.CO_EMPR  
And    T1.CO_UNID_CONC = T2.CO_UNID_CONC
And    T1.CO_BANC = T2.CO_BANC  
And    T1.NU_CNTA_BANC  = T2.NU_CNTA_BANC  
And    T1.AA_BNCO = T2.AA_BNCO
And    T1.MM_BNCO = T2.MM_BNCO 
And    T1.TI_MOVI_BANC  = T2.TI_MOVI_BANC 
And    T1.NU_COMP_BANC = T2.NU_COMP_BANC
And    T1.CO_EMPR = T3.CO_EMPR  
And    T1.CO_BANC = T3.CO_BANC  
And    T1.NU_CNTA_BANC  = T3.NU_CNTA_BANC
AND	 T1.CO_EMPR = T4.CO_EMPR
AND	 T1.CO_ENTI = T4.CO_PROV
AND 	 T1.TI_DOCU_ENTI = T4.CO_TIPO_DOCU
AND 	 T1.NU_DOCU_ENTI = T4.NU_DOCU_PROV
AND 	 T4.CO_TIPO_DOCU = T5.TI_DOCU


INSERT INTO #TWDOCU_PROV_Q21_1 
(CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_EMIS, 
CO_MONE, FA_TIPO_CAMB, IM_PAGO,  TI_DETA)
Select T1.CO_EMPR, T1.TI_DOCU_ENTI, T1.NU_DOCU_ENTI, T1.CO_ENTI, T2.FE_OPER,
T4.CO_MONE, T2.FA_TIPO_CAMB,
/*( ( PatIndex(T5.ST_SIGN,'S') - PatIndex(T5.ST_SIGN,'N') )*PatIndex(T1.TI_MOVI_BANC,'E')+
  ( PatIndex(T5.ST_SIGN,'S') - PatIndex(T5.ST_SIGN,'N') )*PatIndex(T1.TI_MOVI_BANC,'I')) */
( PatIndex(T5.ST_SIGN,'S') - PatIndex(T5.ST_SIGN,'N')) * 
( PatIndex(T1.ST_CIER_DOCU, 'N') * T1.IM_CONV_DOCU +
  PatIndex(T1.ST_CIER_DOCU, 'S') * T1.IM_SALD_DOCU ),
'2'
From   TDMOVI_CAJA T1, TCMOVI_CAJA T2, TMCAJA T3, TMDOCU_PROV T4, TTDOCU_CNTB T5
Where  T4.CO_EMPR = @ISCO_EMPR
AND ((@ISCO_PROV IS NOT NULL AND RTRIM(T4.CO_PROV) = RTRIM(@ISCO_PROV)) OR @ISCO_PROV IS NULL)
AND ((@ISCO_MONE IS NOT NULL AND T4.CO_MONE = @ISCO_MONE) OR @ISCO_MONE IS NULL)

AND ((@ISCO_TIPO_OPER IS NOT NULL AND T4.CO_TIPO_OPER = @ISCO_TIPO_OPER) OR @ISCO_TIPO_OPER IS NULL) 
AND PatIndex( '%'+T4.CO_TIPO_DOCU+'%', @ISDE_CODI)>0 
And    T1.TI_ENTI = @ISTI_AUXI_PROV
And    T2.FE_OPER  <= @IDFE_CANC
And    T2.TI_SITU = 'ACT' 
And    T1.CO_EMPR = T2.CO_EMPR  
And    T1.CO_CAJA = T2.CO_CAJA
And    T1.AA_CAJA = T2.AA_CAJA
And    T1.MM_CAJA = T2.MM_CAJA 
And    T1.TI_MOVI = T2.TI_MOVI
And    T1.NU_COMP_CAJA = T2.NU_COMP_CAJA
And    T1.CO_EMPR = T3.CO_EMPR  
And    T1.CO_CAJA = T3.CO_CAJA
And	 T1.CO_EMPR = T4.CO_EMPR
AND	 T1.CO_ENTI = T4.CO_PROV
AND	 T1.TI_DOCU_ENTI = T4.CO_TIPO_DOCU
And	 T1.NU_DOCU_ENTI = T4.NU_DOCU_PROV
AND 	 T4.CO_TIPO_DOCU = T5.TI_DOCU



/* PAGOS DE RENDICIONES DE GASTO */

INSERT INTO #TWDOCU_PROV_Q21_1 
(CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_EMIS, 
CO_MONE, FA_TIPO_CAMB, IM_PAGO,  TI_DETA)

Select T1.CO_EMPR, T1.CO_TIPO_DOCU, T1.NU_DOCU_PROV, T1.CO_ENTI, T2.FE_REND_GAST,
T4.CO_MONE, T1.FA_CAMB_DOCU, T1.IM_DOCU,
'2'
From  TDREND_GAST T1, TCREND_GAST T2, TMDOCU_PROV T4, TTDOCU_CNTB T5
Where  T4.CO_EMPR = @ISCO_EMPR
And ((@ISCO_PROV IS NOT NULL AND RTRIM(T4.CO_PROV) = RTRIM(@ISCO_PROV)) OR @ISCO_PROV IS NULL)
And ((@ISCO_MONE IS NOT NULL AND T4.CO_MONE = @ISCO_MONE) OR @ISCO_MONE IS NULL)
And ((@ISCO_TIPO_OPER IS NOT NULL AND T4.CO_TIPO_OPER = @ISCO_TIPO_OPER) OR @ISCO_TIPO_OPER IS NULL) 
And PatIndex( '%'+T4.CO_TIPO_DOCU+'%', @ISDE_CODI)>0 
And T1.TI_ENTI = @ISTI_AUXI_PROV
And T2.FE_REND_GAST  <= @IDFE_CANC
And T2.TI_SITU = 'ACT' 
And T1.CO_EMPR = T2.CO_EMPR  
And T1.NU_REND_GAST = T2.NU_REND_GAST
And T1.CO_EMPR = T4.CO_EMPR
And T1.CO_ENTI = T4.CO_PROV
And T1.CO_TIPO_DOCU = T4.CO_TIPO_DOCU
And T1.NU_DOCU_PROV = T4.NU_DOCU_PROV
And T4.CO_TIPO_DOCU = T5.TI_DOCU


--************************


-- PAGOS LETRAS 
If PatIndex('%LET%', @ISDE_CODI) > 0 
	BEGIN
	INSERT INTO #TWDOCU_PROV_Q21_1 
	(CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_EMIS, 
	CO_MONE, FA_TIPO_CAMB, IM_PAGO,  TI_DETA)
	Select T1.CO_EMPR, T1.TI_DOCU_ENTI, T1.NU_DOCU_ENTI, T1.CO_ENTI, T2.FE_OPER,
	T4.CO_MONE, T2.FA_TIPO_CAMB,
	(PatIndex(T1.TI_MOVI_BANC,'E') - PatIndex(T1.TI_MOVI_BANC,'I')) * 
	(PatIndex(T1.ST_CIER_DOCU, 'N') * T1.IM_CONV_DOCU +
	PatIndex(T1.ST_CIER_DOCU, 'S')* T1.IM_SALD_DOCU),
	'2'
	From  TDMOVI_BANC T1, TCMOVI_BANC T2, TMCNTA_BANC T3, TMLETR_PROV T4
	Where  T4.CO_EMPR = @ISCO_EMPR
	AND ((@ISCO_PROV IS NOT NULL AND RTRIM(T4.CO_PROV) = RTRIM(@ISCO_PROV)) OR @ISCO_PROV IS NULL)
	AND ((@ISCO_MONE IS NOT NULL AND T4.CO_MONE = @ISCO_MONE) OR @ISCO_MONE IS NULL)
	AND ((@ISCO_TIPO_OPER IS NOT NULL AND T4.CO_TIPO_OPER = @ISCO_TIPO_OPER) OR @ISCO_TIPO_OPER IS NULL) 
	And    T1.TI_ENTI = @ISTI_AUXI_PROV
	And    T2.FE_OPER  <= @IDFE_CANC
	And    T2.TI_SITU = 'ACT' 
	And    T1.CO_EMPR = T2.CO_EMPR  
	And    T1.CO_UNID_CONC = T2.CO_UNID_CONC
	And    T1.CO_BANC = T2.CO_BANC  
	And    T1.NU_CNTA_BANC  = T2.NU_CNTA_BANC  
	And    T1.AA_BNCO = T2.AA_BNCO
	And    T1.MM_BNCO = T2.MM_BNCO 
	And    T1.TI_MOVI_BANC  = T2.TI_MOVI_BANC 
	And    T1.NU_COMP_BANC = T2.NU_COMP_BANC
	And    T1.CO_EMPR = T3.CO_EMPR  
	And    T1.CO_BANC = T3.CO_BANC  
	And    T1.NU_CNTA_BANC  = T3.NU_CNTA_BANC
	AND	 T1.CO_EMPR = T4.CO_EMPR
	AND	 T1.CO_ENTI = T4.CO_PROV
	AND	 T1.TI_DOCU_ENTI = @OSTI_DOCU_LETR
	AND 	 T1.NU_DOCU_ENTI = T4.NU_LETR_PROV


	INSERT INTO #TWDOCU_PROV_Q21_1 
	(CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_EMIS, 
	CO_MONE, FA_TIPO_CAMB, IM_PAGO,  TI_DETA)
	Select T1.CO_EMPR, T1.TI_DOCU_ENTI, T1.NU_DOCU_ENTI, T1.CO_ENTI, T2.FE_OPER,
	T4.CO_MONE, T2.FA_TIPO_CAMB,
	(PatIndex(T1.TI_MOVI,'E') - PatIndex(T1.TI_MOVI,'I')) *
	(PatIndex(T1.ST_CIER_DOCU, 'N') * T1.IM_CONV_DOCU +
	PatIndex(T1.ST_CIER_DOCU, 'S') * T1.IM_SALD_DOCU),
	'2'
	From   TDMOVI_CAJA T1, TCMOVI_CAJA T2, TMCAJA T3, TMLETR_PROV T4
	Where  T4.CO_EMPR = @ISCO_EMPR
	AND ((@ISCO_PROV IS NOT NULL AND RTRIM(T4.CO_PROV) = RTRIM(@ISCO_PROV)) OR @ISCO_PROV IS NULL)
	AND ((@ISCO_MONE IS NOT NULL AND T4.CO_MONE = @ISCO_MONE) OR @ISCO_MONE IS NULL)
	AND ((@ISCO_TIPO_OPER IS NOT NULL AND T4.CO_TIPO_OPER = @ISCO_TIPO_OPER) OR @ISCO_TIPO_OPER IS NULL) 
	And    T1.TI_ENTI = @ISTI_AUXI_PROV
	And    T2.FE_OPER  <= @IDFE_CANC
	And    T2.TI_SITU = 'ACT' 
	And    T1.CO_EMPR = T2.CO_EMPR  
	And    T1.CO_CAJA = T2.CO_CAJA
	And    T1.AA_CAJA = T2.AA_CAJA
	And    T1.MM_CAJA = T2.MM_CAJA 
	And    T1.TI_MOVI = T2.TI_MOVI
	And    T1.NU_COMP_CAJA = T2.NU_COMP_CAJA
	And    T1.CO_EMPR = T3.CO_EMPR  
	And    T1.CO_CAJA = T3.CO_CAJA
	And	 T1.CO_EMPR = T4.CO_EMPR
	AND	 T1.TI_DOCU_ENTI = @OSTI_DOCU_LETR
	And	 T1.NU_DOCU_ENTI = T4.NU_LETR_PROV

	END


--3.- APLICACIONES NCR A DOCUMENTOS

-- DOCUMENTOS
INSERT INTO #TWDOCU_PROV_Q21_1 
(CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_EMIS, 
CO_MONE, FA_TIPO_CAMB, IM_PAGO,  TI_DETA)
SELECT T1.CO_EMPR, T4.CO_TIPO_DOCU, T4.NU_DOCU_PROV, T1.CO_PROV, T1.FE_AMAR,
T4.CO_MONE, T1.FA_TIPO_CAMB,
(PatIndex(T5.ST_SIGN,'S') - PatIndex(T5.ST_SIGN,'N') ) *
(PATINDEX(T2.ST_CIER_DOCU, 'N')* ISNULL(T2.IM_PAGO_CDES,0) + 
PATINDEX(T2.ST_CIER_DOCU, 'S')* ISNULL(T2.IM_SALD_CDES,0)),
'3'
From   TCAMAR_NCPR T1 , TDAMAR_NCPR T2, TMDOCU_PROV T4, TTDOCU_CNTB T5
Where T4.CO_EMPR = @ISCO_EMPR
AND ((@ISCO_PROV IS NOT NULL AND RTRIM(T4.CO_PROV) = RTRIM(@ISCO_PROV)) OR @ISCO_PROV IS NULL)
AND ((@ISCO_MONE IS NOT NULL AND T4.CO_MONE = @ISCO_MONE) OR @ISCO_MONE IS NULL)
AND ((@ISCO_TIPO_OPER IS NOT NULL AND T4.CO_TIPO_OPER = @ISCO_TIPO_OPER) OR @ISCO_TIPO_OPER IS NULL) 
AND PatIndex( '%'+T4.CO_TIPO_DOCU+'%', @ISDE_CODI) > 0 
AND T4.CO_TIPO_DOCU != @OSTI_DOCU_NCRE
And T1.FE_AMAR  <= @IDFE_CANC
AND T1.TI_SITU = 'ACT' 
AND T1.CO_EMPR = T2.CO_EMPR  
AND T1.NU_AMAR = T2.NU_AMAR
AND T1.CO_PROV = T4.CO_PROV
AND T2.CO_EMPR = T4.CO_EMPR
AND T2.CO_TIDO_DEST = T4.CO_TIPO_DOCU
AND T2.NU_DOCU_DEST = T4.NU_DOCU_PROV
AND (T4.NU_REND_GAST IS NULL OR T4.NU_REND_GAST = '')
AND T4.CO_ESTA_DOCU != 'ANU' 
AND T4.CO_TIPO_DOCU = T5.TI_DOCU

If PatIndex('%LET%', @ISDE_CODI) > 0 
INSERT INTO #TWDOCU_PROV_Q21_1 
(CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_EMIS, 
CO_MONE, FA_TIPO_CAMB, IM_PAGO,  TI_DETA)
SELECT T1.CO_EMPR, @OSTI_DOCU_LETR, T4.NU_LETR_PROV, T1.CO_PROV, T1.FE_AMAR,
T4.CO_MONE, T1.FA_TIPO_CAMB, 
(PATINDEX(T2.ST_CIER_DOCU, 'N')* ISNULL(T2.IM_PAGO_CDES,0) + 
PATINDEX(T2.ST_CIER_DOCU, 'S')* ISNULL(T2.IM_SALD_CDES,0)),
'3'
From   TCAMAR_NCPR T1 , TDAMAR_NCPR T2, TMLETR_PROV T4
Where T4.CO_EMPR = @ISCO_EMPR
AND ((@ISCO_PROV IS NOT NULL AND RTRIM(T4.CO_PROV) = RTRIM(@ISCO_PROV)) OR @ISCO_PROV IS NULL)
AND ((@ISCO_MONE IS NOT NULL AND T4.CO_MONE = @ISCO_MONE) OR @ISCO_MONE IS NULL)
AND ((@ISCO_TIPO_OPER IS NOT NULL AND T4.CO_TIPO_OPER = @ISCO_TIPO_OPER) OR @ISCO_TIPO_OPER IS NULL) 
And T1.FE_AMAR  <= @IDFE_CANC
AND T1.TI_SITU = 'ACT' 
AND T1.CO_EMPR = T2.CO_EMPR  
AND T1.NU_AMAR = T2.NU_AMAR
AND T1.CO_PROV = T4.CO_PROV
AND T2.CO_EMPR = T4.CO_EMPR
AND T2.CO_TIDO_DEST = @OSTI_DOCU_LETR
AND T2.NU_DOCU_DEST = T4.NU_LETR_PROV
AND T4.CO_ESTA_DOCU != 'ANU' 


-- NOTAS DE CREDITO APLICADAS 
INSERT INTO #TWDOCU_PROV_Q21_1 
(CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_EMIS, 
CO_MONE, FA_TIPO_CAMB, IM_PAGO,  TI_DETA)
SELECT T1.CO_EMPR, T4.CO_TIPO_DOCU, T4.NU_DOCU_PROV, T1.CO_PROV, T1.FE_AMAR,
T4.CO_MONE, T1.FA_TIPO_CAMB,
(PatIndex(T5.ST_SIGN,'S') - PatIndex(T5.ST_SIGN,'N') ) * 
(PATINDEX(T2.ST_CIER_DOCU, 'N')* ISNULL(T2.IM_PAGO_CORI,0) + 
PATINDEX(T2.ST_CIER_DOCU, 'S')* ISNULL(T2.IM_SALD_CORI,0)),
'3'
From   TCAMAR_NCPR T1 , TDAMAR_NCPR T2, TMDOCU_PROV T4, TTDOCU_CNTB T5
Where  T4.CO_EMPR = @ISCO_EMPR
AND ((@ISCO_PROV IS NOT NULL AND RTRIM(T4.CO_PROV) = RTRIM(@ISCO_PROV)) OR @ISCO_PROV IS NULL)
AND ((@ISCO_MONE IS NOT NULL AND T4.CO_MONE = @ISCO_MONE) OR @ISCO_MONE IS NULL)
AND ((@ISCO_TIPO_OPER IS NOT NULL AND T4.CO_TIPO_OPER = @ISCO_TIPO_OPER) OR @ISCO_TIPO_OPER IS NULL) 
--AND PatIndex(@ISDE_CODI_PROV , T4.TI_PROV)>0 
AND PatIndex( '%'+T4.CO_TIPO_DOCU+'%', @ISDE_CODI) > 0 

AND	T1.CO_EMPR = T4.CO_EMPR
AND	T4.CO_TIPO_DOCU = @OSTI_DOCU_NCRE
And	T1.FE_AMAR  <= @IDFE_CANC
AND    	T1.TI_SITU = 'ACT'
AND   	T2.CO_TIDO_ORIG = T4.CO_TIPO_DOCU 
AND    	T2.NU_DOCU_ORIG = T4.NU_DOCU_PROV 
AND    	T1.CO_EMPR = T2.CO_EMPR  
AND    	T1.NU_AMAR = T2.NU_AMAR
AND    	T2.CO_EMPR = T4.CO_EMPR
AND    	T1.CO_PROV = T4.CO_PROV
AND    	T2.CO_TIDO_ORIG = T4.CO_TIPO_DOCU
AND    	T2.NU_DOCU_ORIG = T4.NU_DOCU_PROV
AND	T4.CO_ESTA_DOCU != 'ANU' 
AND 	T4.CO_TIPO_DOCU = T5.TI_DOCU 

--4.- APLICACIONES OCM Y OSR A DOCUMENTOS

-- DOCUMENTOS
INSERT INTO #TWDOCU_PROV_Q21_1 
(CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_EMIS, 
CO_MONE, FA_TIPO_CAMB, IM_PAGO,  TI_DETA)
SELECT T1.CO_EMPR, T4.CO_TIPO_DOCU, T4.NU_DOCU_PROV, T2.CO_ENTI, T1.FE_AMAR,
T4.CO_MONE, T1.FA_TIPO_CAMB, T2.IM_PAGO_DEST,
'4'
From   TCAMAR_OCPR T1 , TDAMAR_OCPR T2, TMDOCU_PROV T4, TTDOCU_CNTB T5
Where T4.CO_EMPR = @ISCO_EMPR
AND ((@ISCO_PROV IS NOT NULL AND RTRIM(T4.CO_PROV) = RTRIM(@ISCO_PROV)) OR @ISCO_PROV IS NULL)
AND ((@ISCO_MONE IS NOT NULL AND T4.CO_MONE = @ISCO_MONE) OR @ISCO_MONE IS NULL)
AND ((@ISCO_TIPO_OPER IS NOT NULL AND T4.CO_TIPO_OPER = @ISCO_TIPO_OPER) OR @ISCO_TIPO_OPER IS NULL) 
AND PatIndex( '%'+T4.CO_TIPO_DOCU+'%', @ISDE_CODI) > 0 
And    	T1.FE_AMAR  <= @IDFE_CANC
AND    	T1.TI_SITU = 'ACT'
AND    	T1.CO_EMPR = T2.CO_EMPR  
AND    	T1.NU_AMAR = T2.NU_AMAR
AND    	T2.CO_ENTI = T4.CO_PROV
AND    	T2.CO_EMPR = T4.CO_EMPR
AND    	T2.CO_TIDO_DEST = T4.CO_TIPO_DOCU
AND    	T2.NU_DOCU_DEST = T4.NU_DOCU_PROV
AND 	(T4.NU_REND_GAST IS NULL OR T4.NU_REND_GAST = '')
AND	T4.CO_ESTA_DOCU != 'ANU' 
AND	T4.CO_TIPO_DOCU = T5.TI_DOCU
AND	T5.ST_DOCU_0008 = 'N'
AND	T5.ST_DOCU_0015 = 'N'
AND	T5.ST_DOCU_0017 = 'N'

If PatIndex('%LET%', @ISDE_CODI) > 0 
INSERT INTO #TWDOCU_PROV_Q21_1 
(CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_EMIS, 
CO_MONE, FA_TIPO_CAMB, IM_PAGO,  TI_DETA)
SELECT T1.CO_EMPR, @OSTI_DOCU_LETR, T4.NU_LETR_PROV, T2.CO_ENTI, T1.FE_AMAR,
T4.CO_MONE, T1.FA_TIPO_CAMB, T2.IM_PAGO_DEST,
'4'
From   TCAMAR_OCPR T1 , TDAMAR_OCPR T2, TMLETR_PROV T4
Where T4.CO_EMPR = @ISCO_EMPR
AND ((@ISCO_PROV IS NOT NULL AND RTRIM(T4.CO_PROV) = RTRIM(@ISCO_PROV)) OR @ISCO_PROV IS NULL)
AND ((@ISCO_MONE IS NOT NULL AND T4.CO_MONE = @ISCO_MONE) OR @ISCO_MONE IS NULL)
AND ((@ISCO_TIPO_OPER IS NOT NULL AND T4.CO_TIPO_OPER = @ISCO_TIPO_OPER) OR @ISCO_TIPO_OPER IS NULL) 
And    	T1.FE_AMAR  <= @IDFE_CANC
AND    	T1.TI_SITU = 'ACT'
AND    	T1.CO_EMPR = T2.CO_EMPR  
AND    	T1.NU_AMAR = T2.NU_AMAR
AND    	T2.CO_ENTI = T4.CO_PROV
AND    	T2.CO_EMPR = T4.CO_EMPR
AND    	T2.CO_TIDO_DEST = @OSTI_DOCU_LETR
AND    	T2.NU_DOCU_DEST = T4.NU_LETR_PROV
AND	T4.CO_ESTA_DOCU != 'ANU' 


-- ORDENES DE COMPRAS APLICADAS 
INSERT INTO #TWDOCU_PROV_Q21_1 
(CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_EMIS, 
CO_MONE, FA_TIPO_CAMB, IM_PAGO,  TI_DETA)
SELECT T1.CO_EMPR, T4.CO_TIPO_DOCU, T4.NU_DOCU_PROV, T1.CO_PROV, T1.FE_AMAR,
T4.CO_MONE, T1.FA_TIPO_CAMB, -T2.IM_PAGO_ORIG,
'4'
From   TCAMAR_OCPR T1 , TDAMAR_OCPR T2, TMDOCU_PROV T4, TTDOCU_CNTB T5
Where  T4.CO_EMPR = @ISCO_EMPR
AND ((@ISCO_PROV IS NOT NULL AND RTRIM(T4.CO_PROV) = RTRIM(@ISCO_PROV)) OR @ISCO_PROV IS NULL)
AND ((@ISCO_MONE IS NOT NULL AND T4.CO_MONE = @ISCO_MONE) OR @ISCO_MONE IS NULL)
AND ((@ISCO_TIPO_OPER IS NOT NULL AND T4.CO_TIPO_OPER = @ISCO_TIPO_OPER) OR @ISCO_TIPO_OPER IS NULL) 
AND PatIndex( '%'+T4.CO_TIPO_DOCU+'%', @ISDE_CODI) > 0 
AND	 T1.CO_EMPR = T4.CO_EMPR
And    T1.FE_AMAR  <= @IDFE_CANC
AND    T1.TI_SITU = 'ACT'
AND    T2.CO_TIDO_ORIG = T4.CO_TIPO_DOCU 
AND    T2.NU_DOCU_ORIG = T4.NU_DOCU_PROV 
AND    T1.CO_EMPR = T2.CO_EMPR  
AND    T1.NU_AMAR = T2.NU_AMAR
AND    T2.CO_EMPR = T4.CO_EMPR
AND    T1.CO_PROV = T4.CO_PROV
AND    T2.CO_TIDO_ORIG = T4.CO_TIPO_DOCU
AND    T2.NU_DOCU_ORIG = T4.NU_DOCU_PROV
AND	 T4.CO_ESTA_DOCU != 'ANU' 
AND 	 T4.CO_TIPO_DOCU = T5.TI_DOCU 
AND	(T5.ST_DOCU_0008 = 'S'
OR	T5.ST_DOCU_0015 = 'S'
OR	T5.ST_DOCU_0017 = 'S')

--5.- CANJES

-- SOLO MUESTRO LOS DOCUMENTOS QUE SE CANJEAN, NO LAS LETRAS GENERADAS
INSERT INTO #TWDOCU_PROV_Q21_1 
(CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_EMIS, 
CO_MONE, FA_TIPO_CAMB, IM_PAGO,  TI_DETA)
SELECT T1.CO_EMPR, T4.CO_TIPO_DOCU, T4.NU_DOCU_PROV, T1.CO_PROV, T1.FE_CANJ, 
T4.CO_MONE, T1.FA_TIPO_CAMB,
( PatIndex(T5.ST_SIGN,'S') - PatIndex(T5.ST_SIGN,'N') ) *
( PatIndex(T2.ST_CIER_DOCU, 'N') *  T2.IM_CANJ_MDOC + 
  PatIndex(T2.ST_CIER_DOCU, 'S') *  T2.IM_SALD_DOCU ),
'5'
From  TCCANJ_PROV T1 , TDCANJ_PROV T2, TMDOCU_PROV T4, TTDOCU_CNTB T5
Where  T4.CO_EMPR = @ISCO_EMPR
AND ((@ISCO_PROV IS NOT NULL AND RTRIM(T4.CO_PROV) = RTRIM(@ISCO_PROV)) OR @ISCO_PROV IS NULL)
AND ((@ISCO_MONE IS NOT NULL AND T4.CO_MONE = @ISCO_MONE) OR @ISCO_MONE IS NULL)
AND ((@ISCO_TIPO_OPER IS NOT NULL AND T4.CO_TIPO_OPER = @ISCO_TIPO_OPER) OR @ISCO_TIPO_OPER IS NULL) 
AND PatIndex( '%'+T4.CO_TIPO_DOCU+'%', @ISDE_CODI) > 0 
AND T4.CO_TIPO_DOCU != @OSTI_DOCU_CRET
And	T1.CO_EMPR =   T4.CO_EMPR
And    T1.FE_CANJ  <= @IDFE_CANC
AND    T1.TI_SITU != 'ANU'
AND    T1.CO_EMPR = T2.CO_EMPR  
AND    T1.CO_PROV = T2.CO_PROV
AND    T1.NU_CANJ = T2.NU_CANJ
AND    T2.CO_PROV = T4.CO_PROV
AND    T2.CO_TIPO_DOCU = T4.CO_TIPO_DOCU 
AND    T2.NU_DOCU_PROV = T4.NU_DOCU_PROV 
AND (T4.NU_REND_GAST IS NULL OR T4.NU_REND_GAST = '')
AND	T4.CO_ESTA_DOCU != 'ANU' 
AND	 T4.CO_TIPO_DOCU = T5.TI_DOCU  

If PatIndex('%LET%', @ISDE_CODI) > 0 
INSERT INTO #TWDOCU_PROV_Q21_1 
(CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_EMIS, 
CO_MONE, FA_TIPO_CAMB, IM_PAGO,  TI_DETA)
SELECT T1.CO_EMPR, @OSTI_DOCU_LETR, T4.NU_LETR_PROV, T1.CO_PROV, T1.FE_CANJ, 
T4.CO_MONE, T1.FA_TIPO_CAMB, 
( PatIndex(T2.ST_CIER_DOCU, 'N') *  T2.IM_CANJ_MDOC + 
  PatIndex(T2.ST_CIER_DOCU, 'S') *  T2.IM_SALD_DOCU ),
'5'
From  TCCANJ_PROV T1 , TDCANJ_PROV T2, TMLETR_PROV T4
Where  T4.CO_EMPR = @ISCO_EMPR
AND ((@ISCO_PROV IS NOT NULL AND RTRIM(T4.CO_PROV) = RTRIM(@ISCO_PROV)) OR @ISCO_PROV IS NULL)
AND ((@ISCO_MONE IS NOT NULL AND T4.CO_MONE = @ISCO_MONE) OR @ISCO_MONE IS NULL)
AND ((@ISCO_TIPO_OPER IS NOT NULL AND T4.CO_TIPO_OPER = @ISCO_TIPO_OPER) OR @ISCO_TIPO_OPER IS NULL) 
And	T1.CO_EMPR =   T4.CO_EMPR
And    T1.FE_CANJ  <= @IDFE_CANC
AND    T1.TI_SITU != 'ANU'
AND    T1.CO_EMPR = T2.CO_EMPR  
AND    T1.CO_PROV = T2.CO_PROV
AND    T1.NU_CANJ = T2.NU_CANJ
AND    T2.CO_PROV = T4.CO_PROV
AND    T2.CO_TIPO_DOCU = @OSTI_DOCU_LETR
AND    T2.NU_DOCU_PROV = T4.NU_LETR_PROV 
AND	T4.CO_ESTA_DOCU != 'ANU' 


--6.- RENOVACIONES

-- SOLO MUESTRO LOS DOCUMENTOS QUE SE RENUEVAN, NO LAS LETRAS GENERADAS
INSERT INTO #TWDOCU_PROV_Q21_1 
(CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_EMIS, 
CO_MONE, FA_TIPO_CAMB, IM_PAGO,  TI_DETA)
SELECT T1.CO_EMPR, T4.CO_TIPO_DOCU, T4.NU_DOCU_PROV, T1.CO_PROV, T1.FE_RENO,
T4.CO_MONE, T1.FA_TIPO_CAMB,
( PatIndex(T5.ST_SIGN,'S') - PatIndex(T5.ST_SIGN,'N') ) * 
( PatIndex(T2.ST_CIER_DOCU, 'N') *  T2.IM_RENO_MDOC + 
  PatIndex(T2.ST_CIER_DOCU, 'S') *  T2.IM_SALD_DOCU ),
'6'
From   TCRENO_PROV T1 , TDRENO_PROV T2, TMDOCU_PROV T4, TTDOCU_CNTB T5
Where  T4.CO_EMPR = @ISCO_EMPR
AND ((@ISCO_PROV IS NOT NULL AND RTRIM(T4.CO_PROV) = RTRIM(@ISCO_PROV)) OR @ISCO_PROV IS NULL)
AND ((@ISCO_MONE IS NOT NULL AND T4.CO_MONE = @ISCO_MONE) OR @ISCO_MONE IS NULL)
AND ((@ISCO_TIPO_OPER IS NOT NULL AND T4.CO_TIPO_OPER = @ISCO_TIPO_OPER) OR @ISCO_TIPO_OPER IS NULL) 
AND PatIndex( '%'+T4.CO_TIPO_DOCU+'%', @ISDE_CODI) > 0 
AND	 T1.CO_EMPR =   T4.CO_EMPR
And    T1.FE_RENO  <= @IDFE_CANC
AND    T1.TI_SITU != 'ANU'
AND    T1.CO_EMPR = T2.CO_EMPR  
AND    T1.CO_PROV = T2.CO_PROV
AND    T1.NU_RENO = T2.NU_RENO
AND    T2.CO_PROV = T4.CO_PROV
AND    T2.CO_TIPO_DOCU = T4.CO_TIPO_DOCU 
AND    T2.NU_DOCU_PROV = T4.NU_DOCU_PROV 
AND	 T4.CO_ESTA_DOCU != 'ANU' 
AND (T4.NU_REND_GAST IS NULL OR T4.NU_REND_GAST = '')
AND	 T4.CO_TIPO_DOCU = T5.TI_DOCU

If PatIndex('%LET%', @ISDE_CODI) > 0 
INSERT INTO #TWDOCU_PROV_Q21_1 
(CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_EMIS, 
CO_MONE, FA_TIPO_CAMB,
IM_PAGO,  TI_DETA)
SELECT T1.CO_EMPR, @OSTI_DOCU_LETR, T4.NU_LETR_PROV, T1.CO_PROV, T1.FE_RENO,
T4.CO_MONE, T1.FA_TIPO_CAMB, 
( PatIndex(T2.ST_CIER_DOCU, 'N') *  T2.IM_RENO_MDOC + 
  PatIndex(T2.ST_CIER_DOCU, 'S') *  T2.IM_SALD_DOCU ),
'6'
From   TCRENO_PROV T1 , TDRENO_PROV T2, TMLETR_PROV T4
Where  T4.CO_EMPR = @ISCO_EMPR
AND ((@ISCO_PROV IS NOT NULL AND RTRIM(T4.CO_PROV) = RTRIM(@ISCO_PROV)) OR @ISCO_PROV IS NULL)
AND ((@ISCO_MONE IS NOT NULL AND T4.CO_MONE = @ISCO_MONE) OR @ISCO_MONE IS NULL)
AND ((@ISCO_TIPO_OPER IS NOT NULL AND T4.CO_TIPO_OPER = @ISCO_TIPO_OPER) OR @ISCO_TIPO_OPER IS NULL) 
AND	 T1.CO_EMPR =   T4.CO_EMPR
And    T1.FE_RENO  <= @IDFE_CANC
AND    T1.TI_SITU != 'ANU'
AND    T1.CO_EMPR = T2.CO_EMPR  
AND    T1.CO_PROV = T2.CO_PROV
AND    T1.NU_RENO = T2.NU_RENO
AND    T2.CO_PROV = T4.CO_PROV
AND    T2.CO_TIPO_DOCU = @OSTI_DOCU_LETR
AND    T2.NU_DOCU_PROV = T4.NU_LETR_PROV 
AND	 T4.CO_ESTA_DOCU != 'ANU'

--7.- DEVOLUCION DE ANTICIPOS
INSERT INTO #TWDOCU_PROV_Q21_1 
(CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_EMIS, 
CO_MONE, FA_TIPO_CAMB,
IM_PAGO,  TI_DETA)
Select T1.CO_EMPR, T1.CO_TIPO_DOCU, T1.NU_DOCU_PROV, T4.CO_PROV, T2.FE_OPER,
T4.CO_MONE, T2.FA_TIPO_CAMB, -T1.IM_DEVO, 
'7'
From  TDDEVO_ANTC T1, TCMOVI_BANC T2, TMCNTA_BANC T3, TMDOCU_PROV T4, TTDOCU_CNTB T5
Where  T4.CO_EMPR = @ISCO_EMPR
AND ((@ISCO_PROV IS NOT NULL AND RTRIM(T4.CO_PROV) = RTRIM(@ISCO_PROV)) OR @ISCO_PROV IS NULL)
AND ((@ISCO_MONE IS NOT NULL AND T4.CO_MONE = @ISCO_MONE) OR @ISCO_MONE IS NULL)
AND ((@ISCO_TIPO_OPER IS NOT NULL AND T4.CO_TIPO_OPER = @ISCO_TIPO_OPER) OR @ISCO_TIPO_OPER IS NULL) 
--AND PatIndex(@ISDE_CODI_PROV , T4.TI_PROV)>0 
AND PatIndex( '%'+T4.CO_TIPO_DOCU+'%', @ISDE_CODI)>0 
And 	T2.FE_OPER  <= @IDFE_CANC
And 	T2.TI_SITU = 'ACT' 
And    T1.CO_EMPR = T2.CO_EMPR  
And    T1.CO_BANC = T2.CO_BANC  
And    T1.NU_CNTA_BANC  = T2.NU_CNTA_BANC  
And    T1.AA_BNCO = T2.AA_BNCO
And    T1.MM_BNCO = T2.MM_BNCO 
And    T1.TI_MOVI_BANC  = T2.TI_MOVI_BANC 
And    T1.NU_COMP_BANC = T2.NU_COMP_BANC
And    T1.CO_EMPR = T3.CO_EMPR  
And    T1.CO_BANC = T3.CO_BANC  
And    T1.NU_CNTA_BANC  = T3.NU_CNTA_BANC
AND	 T1.CO_EMPR = T4.CO_EMPR
AND	 T2.CO_ENTI = T4.CO_PROV
AND 	 T1.CO_TIPO_DOCU = T4.CO_TIPO_DOCU
AND 	 T1.NU_DOCU_PROV = T4.NU_DOCU_PROV
AND 	 T4.CO_TIPO_DOCU = T5.TI_DOCU

------------------------------------------------------------------
-----	CONVIERTO LOS IMPORTES A LA MONEDA DE PRESENTACION
------------------------------------------------------------------

  UPDATE #TWDOCU_PROV_Q21_1
  SET IM_CXPA_CONV = IM_CXPA,
      IM_PAGO_CONV = IM_PAGO
  WHERE CO_MONE = @ISCO_MONE_PRES

  IF @ISCO_MONE IS NULL
     SELECT TOP 1 @VSTI_CAMB = TI_CAMB, @VSTI_ORIG = TI_ORIG
     FROM   TMPARA_TESO
  ELSE
     SELECT @VSTI_CAMB = TI_CAMB, @VSTI_ORIG = TI_ORIG
     FROM   TMPARA_TESO
     WHERE  CO_EMPR = @ISCO_EMPR

  SELECT @VNIM_CXPA_CONV = 0, @VNIM_PAGO_CONV = 0


  DECLARE  CU_TMDOCU_PROV_Q21_1 CURSOR
  FOR	
  SELECT  CO_EMPR, CO_PROV, CO_TIPO_DOCU, NU_DOCU_PROV, CO_MONE, IM_CXPA, IM_PAGO, 
          FE_EMIS, FA_TIPO_CAMB, TI_DETA
  FROM    #TWDOCU_PROV_Q21_1
  WHERE   CO_MONE != @ISCO_MONE_PRES

  OPEN  CU_TMDOCU_PROV_Q21_1
  FETCH CU_TMDOCU_PROV_Q21_1 
  INTO  @CSCO_EMPR, @CSCO_PROV, @CSCO_TIPO_DOCU, @CSNU_DOCU_PROV, @CSCO_MONE, @CNIM_CXPA, @CNIM_PAGO,
        @CDFE_EMIS, @CNFA_TIPO_CAMB, @CSTI_DETA


  SELECT @VNFE_0001  = @@FETCH_STATUS
  WHILE (@VNFE_0001 = 0)
    BEGIN
      IF (@VNFE_0001 < 0)
     	BEGIN
            RAISERROR 20001 'FIN DE ARCHIVO'
 	    Close CU_TMDOCU_PROV_Q21_1
            Deallocate CU_TMDOCU_PROV_Q21_1
	    Return
        END		

     IF @CNIM_CXPA != 0
      EXEC SP_TCFACT_CAMB_Q01 @CSCO_EMPR, @CSCO_MONE, @ISCO_MONE_PRES, @CDFE_EMIS, @CNIM_CXPA,
           @VSTI_CAMB, @VSTI_ORIG, @ISST_USUA, @INFA_USUA, @VNIM_CXPA_CONV OUTPUT

     IF @CNIM_PAGO != 0
      EXEC SP_TCFACT_CAMB_Q01 @CSCO_EMPR, @CSCO_MONE, @ISCO_MONE_PRES, @CDFE_EMIS, @CNIM_PAGO,
           @VSTI_CAMB, @VSTI_ORIG, @ISST_USUA, @INFA_USUA, @VNIM_PAGO_CONV OUTPUT

      UPDATE  #TWDOCU_PROV_Q21_1
      SET     IM_CXPA_CONV = @VNIM_CXPA_CONV,
              IM_PAGO_CONV = @VNIM_PAGO_CONV
      WHERE   CURRENT OF CU_TMDOCU_PROV_Q21_1

      SELECT @VNIM_CXPA_CONV = 0, @VNIM_PAGO_CONV = 0

      FETCH CU_TMDOCU_PROV_Q21_1 
      INTO  @CSCO_EMPR, @CSCO_PROV, @CSCO_TIPO_DOCU, @CSNU_DOCU_PROV, @CSCO_MONE, @CNIM_CXPA, @CNIM_PAGO,
            @CDFE_EMIS, @CNFA_TIPO_CAMB, @CSTI_DETA

      SELECT @VNFE_0001 = @@FETCH_STATUS

  END

  CLOSE CU_TMDOCU_PROV_Q21_1
  DEALLOCATE CU_TMDOCU_PROV_Q21_1

------------------------------------------------------------------
-----	AGRUPO POR DUCUMENTO E INSERTO EN LA TABLA TEMPORAL
------------------------------------------------------------------

	Insert Into #TWDOCU_PROV_Q21_1 
		  (CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_EMIS, FE_VENC, CO_TIPO_OPER, CO_MONE,
   		  FA_TIPO_CAMB, IM_CXPA,  IM_CXPA_CONV, IM_PAGO, IM_PAGO_CONV,  IM_CONV, ST_FLAG)
	Select 	  T1.CO_EMPR , T1.CO_TIPO_DOCU, T1.NU_DOCU_PROV, T1.CO_PROV, 
		  MAX(T2.FE_EMIS), MAX(T2.FE_VENC), MAX(T1.CO_TIPO_OPER), 
		  MAX(T1.CO_MONE), MAX(T1.FA_TIPO_CAMB), 
		  SUM(T1.IM_CXPA), SUM(T1.IM_CXPA_CONV), SUM(T1.IM_PAGO), 
		  SUM(T1.IM_PAGO_CONV), SUM(T1.IM_CXPA_CONV - T1.IM_PAGO_CONV), 'S'
	From 	  #TWDOCU_PROV_Q21_1 T1,(SELECT CO_EMPR, CO_PROV, CO_TIPO_DOCU, NU_DOCU_PROV,
						FE_EMIS, FE_VENC
					FROM #TWDOCU_PROV_Q21_1
					WHERE TI_DETA = '1') T2
	Where	  T1.FE_EMIS >= @IDFE_INIC
	And	  T1.CO_EMPR = T2.CO_EMPR
	And	  T1.CO_PROV = T2.CO_PROV
	And	  T1.CO_TIPO_DOCU = T2.CO_TIPO_DOCU
	And	  T1.NU_DOCU_PROV = T2.NU_DOCU_PROV
	Group By  T1.CO_EMPR, T1.CO_PROV, T1.CO_TIPO_DOCU, T1.NU_DOCU_PROV

--SELECT * FROM #TWDOCU_PROV_Q21_1
--ORDER BY CO_EMPR, CO_PROV, CO_TIPO_DOCU, NU_DOCU_PROV

IF @ISTI_SALD = 'C'
	DELETE	#TWDOCU_PROV_Q21_1
	WHERE 	IM_CXPA = IM_PAGO
	AND	ST_FLAG = 'S'

IF @ISTI_SALD = 'S'
	DELETE	#TWDOCU_PROV_Q21_1
	WHERE 	IM_CXPA != IM_PAGO
	AND	ST_FLAG = 'S'

-- SALDOS INICIALES
	INSERT INTO #TWDOCU_PROV_Q21_2(CO_EMPR, CO_PROV, CO_MONE, IM_SAIN, IM_SAIN_CONV) 
	Select 	CO_EMPR, CO_PROV, CO_MONE,
		SUM( ISNULL(IM_CXPA,0) ) - SUM( ISNULL(IM_PAGO,0) ), SUM( ISNULL(IM_CXPA_CONV - IM_PAGO_CONV,0) )
	From 	#TWDOCU_PROV_Q21_1
	Where 	FE_EMIS < @IDFE_INIC
	And	ST_FLAG IS NULL
	Group By  CO_EMPR, CO_PROV, CO_MONE

	DELETE #TWDOCU_PROV_Q21_1
	WHERE ST_FLAG IS NULL

--SELECT * FROM #TWDOCU_PROV_Q21_1
--ORDER BY CO_EMPR, CO_PROV, CO_TIPO_DOCU, NU_DOCU_PROV
--SELECT * FROM #TWDOCU_PROV_Q21_2

--DETALLADO
IF @ISTI_REPO = 'D' 
BEGIN
	
	IF @ISDE_ORDE = '1'
		SELECT @VSDE_ORDE = ' ORDER BY 1, 24, 3, 23, 25, 5, 6 '
	IF @ISDE_ORDE = '2'
		SELECT @VSDE_ORDE = ' ORDER BY 1, 24, 3, 23, 5, 6 '
	IF @ISDE_ORDE = '3'
		SELECT @VSDE_ORDE = ' ORDER BY 1, 24, 4, 23, 5, 6 '

	SELECT  @VSFE_INIC = CONVERT(VARCHAR(10), @IDFE_INIC, 103),
		@VSFE_FINA = CONVERT(VARCHAR(10), @IDFE_FINA, 103)

     	INSERT INTO #TWDOCU_PROV_Q21_3 (CO_EMPR, CO_PROV, CO_TIPO_DOCU, NU_DOCU_PROV, 
		FE_EMIS, FE_VENC, CO_MONE, CO_TIPO_OPER, IM_SAIN, IM_SAIN_CONV, IM_CXPA, IM_PAGO, 
		FA_TIPO_CAMB, T1.IM_CONV, TI_DETA_PROV, TI_DETA_EMPR)
	SELECT	T1.CO_EMPR, T1.CO_PROV, T1.CO_TIPO_DOCU, T1.NU_DOCU_PROV, T1.FE_EMIS,
		T1.FE_VENC, T1.CO_MONE, T1.CO_TIPO_OPER, 0, 0, ISNULL(T1.IM_CXPA, 0), ISNULL(T1.IM_PAGO, 0),
		ISNULL(T1.FA_TIPO_CAMB, 0), ISNULL(T1.IM_CONV, 0), '1', '1'
	FROM 	#TWDOCU_PROV_Q21_1 T1
	UNION ALL
	SELECT	T1.CO_EMPR, T1.CO_PROV, '', '', MAX(T1.FE_EMIS), 
		NULL, T1.CO_MONE, '', ISNULL( MAX(T3.IM_SAIN), 0 ), ISNULL( MAX(T3.IM_SAIN_CONV), 0 ), 
		SUM(ISNULL(T1.IM_CXPA, 0)), SUM(ISNULL(T1.IM_PAGO, 0)), 0, SUM(ISNULL(T1.IM_CONV, 0)),
		'2', '1'
	FROM 	#TWDOCU_PROV_Q21_1 T1
    LEFT OUTER JOIN #TWDOCU_PROV_Q21_2 T3
    ON  T1.CO_EMPR = T3.CO_EMPR
	And T1.CO_PROV = T3.CO_PROV
	And T1.CO_MONE = T3.CO_MONE 
    INNER JOIN TTMONE T2
    ON T1.CO_MONE = T2.CO_MONE 
	GROUP BY T1.CO_EMPR, T1.CO_PROV, T1.CO_MONE
	UNION ALL
	SELECT	T1.CO_EMPR, T1.CO_PROV, '',  '', NULL, NULL, T1.CO_MONE, '', ISNULL(T1.IM_SAIN, 0), 
		ISNULL(T1.IM_SAIN_CONV, 0), 0, 0, 0, ISNULL(T1.IM_SAIN_CONV, 0), '2', '1'
	FROM 	#TWDOCU_PROV_Q21_2 T1, TTMONE T2
	WHERE 	T1.CO_MONE = T2.CO_MONE 
	AND NOT EXISTS (SELECT 	T3.CO_EMPR
			FROM 	#TWDOCU_PROV_Q21_1 T3
			WHERE 	T1.CO_EMPR = T3.CO_EMPR
			AND 	T1.CO_PROV = T3.CO_PROV
			AND 	T1.CO_MONE = T3.CO_MONE )
	UNION ALL
	SELECT	T1.CO_EMPR, T1.CO_PROV, '', '', NULL, NULL, '', '', 0, ISNULL(MAX(T3.IM_SAIN_CONV), 0),
		SUM(ISNULL(T1.IM_CXPA_CONV, 0)), SUM(ISNULL(T1.IM_PAGO_CONV, 0)), 0, 0, '3', '1'
	FROM 	#TWDOCU_PROV_Q21_1 T1
    LEFT OUTER JOIN (SELECT CO_EMPR, CO_PROV,
						   SUM(IM_SAIN_CONV) IM_SAIN_CONV 
					FROM #TWDOCU_PROV_Q21_2 
					GROUP BY CO_EMPR, CO_PROV) T3
    ON  T1.CO_EMPR = T3.CO_EMPR
	And T1.CO_PROV = T3.CO_PROV
	GROUP BY T1.CO_EMPR, T1.CO_PROV
	UNION ALL
	SELECT	T1.CO_EMPR, T1.CO_PROV, '', '', NULL, NULL, '', '', SUM(ISNULL(T1.IM_SAIN_CONV, 0)), 
		0, 0, 0, 0, 0, '3', '1'
	FROM 	#TWDOCU_PROV_Q21_2 T1
	WHERE 	NOT EXISTS (SELECT 	T3.CO_EMPR
				FROM 	#TWDOCU_PROV_Q21_1 T3
				WHERE 	T1.CO_EMPR = T3.CO_EMPR
				AND 	T1.CO_PROV = T3.CO_PROV )
	GROUP BY T1.CO_EMPR, T1.CO_PROV
	UNION ALL
	SELECT	T1.CO_EMPR, (SELECT MAX(CO_PROV) FROM #TWDOCU_PROV_Q21_1), '', '', 
		MAX(T1.FE_EMIS),NULL, T1.CO_MONE, '', ISNULL(MAX(T3.IM_SAIN), 0), ISNULL(MAX(T3.IM_SAIN_CONV), 0),
		SUM(ISNULL(T1.IM_CXPA, 0)), SUM(ISNULL(T1.IM_PAGO, 0)), 0, SUM(ISNULL(T1.IM_CONV, 0)), 
		'2', '2'
	FROM 	#TWDOCU_PROV_Q21_1 T1
    LEFT OUTER JOIN (SELECT CO_EMPR, CO_MONE,
							  SUM(IM_SAIN) IM_SAIN, 
							  SUM(IM_SAIN_CONV) IM_SAIN_CONV 
						FROM #TWDOCU_PROV_Q21_2 
						GROUP BY CO_EMPR, CO_MONE)T3
    ON 	T1.CO_EMPR = T3.CO_EMPR
	AND T1.CO_MONE = T3.CO_MONE
    INNER JOIN TTMONE T2
    ON T1.CO_MONE = T2.CO_MONE 
	GROUP BY T1.CO_EMPR,  T1.CO_MONE 
	UNION ALL
	SELECT	T1.CO_EMPR, MAX(T1.CO_PROV), '', '', NULL, NULL, T1.CO_MONE, '', SUM(ISNULL(T1.IM_SAIN, 0)), 
		SUM(ISNULL(T1.IM_SAIN_CONV, 0)), 0, 0, 0, SUM(ISNULL(T1.IM_SAIN_CONV, 0)), 
		'2', '2'
	FROM 	#TWDOCU_PROV_Q21_2 T1, TTMONE T2
	WHERE 	T1.CO_MONE = T2.CO_MONE 
	AND NOT EXISTS (SELECT 	T3.CO_EMPR
			FROM 	#TWDOCU_PROV_Q21_1 T3
			WHERE 	T1.CO_EMPR = T3.CO_EMPR
			AND 	T1.CO_MONE = T3.CO_MONE )
	GROUP BY T1.CO_EMPR,  T1.CO_MONE
	UNION ALL
	SELECT	T1.CO_EMPR, MAX(T1.CO_PROV), '', '', NULL, NULL, '', '', 0, ISNULL(MAX(T3.IM_SAIN_CONV), 0),
		SUM(ISNULL(T1.IM_CXPA_CONV, 0)), SUM(ISNULL(T1.IM_PAGO_CONV, 0)), 0, 0, '3', '2'
	FROM 	#TWDOCU_PROV_Q21_1 T1
    LEFT OUTER JOIN  (SELECT CO_EMPR,
					       SUM(IM_SAIN_CONV) IM_SAIN_CONV 
					FROM #TWDOCU_PROV_Q21_2 
					GROUP BY CO_EMPR) T3
    ON T1.CO_EMPR = T3.CO_EMPR
	GROUP BY T1.CO_EMPR


	EXECUTE('
	SELECT 	T1.CO_EMPR,  T3.DE_NOMB, T1.CO_PROV, T2.NO_AUXI, T1.CO_TIPO_DOCU, 
		T1.NU_DOCU_PROV, CONVERT(VARCHAR(10), T1.FE_EMIS, 103), CONVERT(VARCHAR(10), T1.FE_VENC, 103), T1.CO_MONE, 
T4.SB_MONE, 
		T4.DE_MONE, T1.CO_TIPO_OPER, T1.IM_SAIN, T1.IM_SAIN_CONV, T1.IM_CXPA, 
		T1.IM_PAGO, T1.FA_TIPO_CAMB, T2.NO_DIRE, T2.CO_UBIC_GEOG, T2.NU_TLFN, 
		T2.NU_FAXE, T1.IM_CONV, T1.TI_DETA_PROV, T1.TI_DETA_EMPR, T1.FE_EMIS
	FROM 	#TWDOCU_PROV_Q21_3 T1
    INNER JOIN TMAUXI_EMPR T2
    ON  T2.TI_AUXI_EMPR = "' + @ISTI_AUXI_PROV + '"
    AND T1.CO_EMPR = T2.CO_EMPR
	AND	T1.CO_PROV = T2.CO_AUXI_EMPR
    INNER JOIN TMEMPR T3
    ON T1.CO_EMPR = T3.CO_EMPR
    LEFT OUTER JOIN TTMONE T4
    ON T1.CO_MONE = T4.CO_MONE
	WHERE	(T1.IM_SAIN != 0
	OR 	T1.IM_SAIN_CONV != 0
	OR 	T1.IM_CXPA != 0 
	OR 	T1.IM_PAGO != 0)'+ @VSDE_ORDE)
/*
	WHERE T4.TI_AUXI_EMPR = '' + @ISTI_AUXI_PROV + ''
		AND T1.CO_EMPR = T2.CO_EMPR
		AND T1.CO_EMPR = T4.CO_EMPR
		AND T1.CO_PROV = T4.CO_AUXI_EMPR ) T1
	WHERE T1.IM_SAIN != 0
	OR T1.IM_SAIN_CONV != 0
	OR T1.IM_CXPA != 0 
	OR T1.IM_PAGO != 0 ' + @VSDE_ORDE)
*/

END

IF @ISTI_REPO = 'R' 
BEGIN

	IF @ISDE_ORDE = '3'
	SELECT @VSDE_ORDE = ' ORDER BY 15, 1, 14, 4, 5 '
	ELSE
		SELECT @VSDE_ORDE = ' ORDER BY 15, 1, 14, 3, 5 '

	INSERT INTO #TWDOCU_PROV_Q21_3 (T1.CO_EMPR, T1.CO_PROV, T1.CO_MONE, T1.IM_SAIN, T1.IM_CXPA, 
	T1.IM_PAGO, T1.IM_CONV, T1.IM_SAIN_CONV, T1.IM_CONV_TOTA, T1.TI_DETA_EMPR, 
	T1.TI_DETA_GENE)
	SELECT  T1.CO_EMPR, T1.CO_PROV, T1.CO_MONE, ISNULL(MAX(T3.IM_SAIN), 0), SUM(ISNULL( T1.IM_CXPA, 0 )), 
		SUM(ISNULL( T1.IM_PAGO, 0 )), SUM(ISNULL( T1.IM_CONV, 0 )), ISNULL(MAX(T3.IM_SAIN_CONV), 0),
		(SELECT SUM(T11.IM_CONV) 
		 FROM #TWDOCU_PROV_Q21_1 T11
		 WHERE T1.CO_EMPR = T11.CO_EMPR
		 AND T1.CO_PROV = T11.CO_PROV
		 GROUP BY T11.CO_EMPR, T11.CO_PROV) + ISNULL(MAX(T4.IM_SAIN_CONV), 0), 
		'1', '1'
	FROM 	#TWDOCU_PROV_Q21_1 T1
    LEFT OUTER JOIN #TWDOCU_PROV_Q21_2 T3
    ON  T1.CO_EMPR = T3.CO_EMPR
	And T1.CO_PROV = T3.CO_PROV
	And T1.CO_MONE = T3.CO_MONE
    LEFT OUTER JOIN (SELECT CO_EMPR, CO_PROV, SUM(IM_SAIN_CONV) IM_SAIN_CONV, 
					SUM(IM_SAIN) + SUM(IM_SAIN_CONV) IM_CONV_TOTA 
					FROM #TWDOCU_PROV_Q21_2 
					GROUP BY CO_EMPR, CO_PROV) T4 
    ON  T1.CO_EMPR = T4.CO_EMPR
    And T1.CO_PROV = T4.CO_PROV
    INNER JOIN TTMONE T2
    ON T1.CO_MONE = T2.CO_MONE 
	GROUP BY T1.CO_EMPR, T1.CO_PROV, T1.CO_MONE
	UNION ALL
	SELECT	T1.CO_EMPR, T1.CO_PROV, T1.CO_MONE, T1.IM_SAIN, 0, 0, 
		0, T1.IM_SAIN_CONV, T1.IM_SAIN_CONV, '1', '1'
	FROM 	#TWDOCU_PROV_Q21_2 T1, TTMONE T2
	WHERE 	T1.CO_MONE = T2.CO_MONE 
	AND NOT EXISTS (SELECT 	T3.CO_EMPR
			FROM 	#TWDOCU_PROV_Q21_1 T3
			WHERE 	T1.CO_EMPR = T3.CO_EMPR
			AND 	T1.CO_PROV = T3.CO_PROV
			AND 	T1.CO_MONE = T3.CO_MONE )
	UNION ALL
	SELECT	T1.CO_EMPR, (SELECT MAX(CO_PROV) FROM #TWDOCU_PROV_Q21_1), T1.CO_MONE, ISNULL(MAX(T3.IM_SAIN), 0),
		SUM(ISNULL( T1.IM_CXPA, 0 )), SUM(ISNULL( T1.IM_PAGO, 0 )), SUM(ISNULL( T1.IM_CONV, 0 )),
		ISNULL(MAX(T3.IM_SAIN_CONV), 0), 0, '2', '1'
	FROM 	#TWDOCU_PROV_Q21_1 T1
    LEFT OUTER JOIN (SELECT CO_EMPR, CO_MONE,
						  SUM(IM_SAIN) IM_SAIN, 
						  SUM(IM_SAIN_CONV) IM_SAIN_CONV 
					FROM #TWDOCU_PROV_Q21_2 
					GROUP BY CO_EMPR, CO_MONE) T3
    ON  T1.CO_EMPR = T3.CO_EMPR
	AND T1.CO_MONE = T3.CO_MONE
    INNER JOIN TTMONE T2
    ON T1.CO_MONE = T2.CO_MONE 
	GROUP BY T1.CO_EMPR,  T1.CO_MONE 
	UNION ALL
	SELECT	T1.CO_EMPR, (SELECT MAX(CO_PROV) FROM #TWDOCU_PROV_Q21_1), T1.CO_MONE, ISNULL(MAX(T3.IM_SAIN), 0),
		0, 0, 0, ISNULL(MAX(T3.IM_SAIN_CONV), 0), 0, '2', '1'
	FROM 	#TWDOCU_PROV_Q21_2 T1
    LEFT OUTER JOIN (SELECT CO_EMPR, CO_MONE,
						  SUM(ISNULL(IM_SAIN, 0)) IM_SAIN, 
						  SUM(ISNULL(IM_SAIN_CONV, 0)) IM_SAIN_CONV 
					FROM #TWDOCU_PROV_Q21_2     
	GROUP BY CO_EMPR, CO_MONE)T3
    ON  T1.CO_EMPR = T3.CO_EMPR
	AND T1.CO_MONE = T3.CO_MONE
    INNER JOIN TTMONE T2	
	ON T1.CO_MONE = T2.CO_MONE 
	AND NOT EXISTS (SELECT 	T3.CO_EMPR
			FROM 	#TWDOCU_PROV_Q21_1 T3
			WHERE 	T1.CO_EMPR = T3.CO_EMPR
			AND 	T1.CO_MONE = T3.CO_MONE )
	GROUP BY T1.CO_EMPR,  T1.CO_MONE
	UNION ALL
	SELECT	T1.CO_EMPR, MAX(T1.CO_PROV), '', 0, SUM(ISNULL( T1.IM_CXPA_CONV, 0 )),
		SUM(ISNULL( T1.IM_PAGO_CONV, 0 )), SUM(ISNULL( T1.IM_CONV, 0 )),
		ISNULL(MAX(T3.IM_SAIN_CONV), 0), 0, '3', '1'
	FROM 	#TWDOCU_PROV_Q21_1 T1
    LEFT OUTER JOIN (SELECT CO_EMPR, SUM(ISNULL(IM_SAIN_CONV, 0)) IM_SAIN_CONV 
					FROM #TWDOCU_PROV_Q21_2 
					GROUP BY CO_EMPR) T3
    ON T1.CO_EMPR = T3.CO_EMPR
	GROUP BY T1.CO_EMPR
	UNION ALL
	SELECT	MAX(T1.CO_EMPR), (SELECT MAX(CO_PROV) FROM #TWDOCU_PROV_Q21_1), T1.CO_MONE, ISNULL(MAX(T3.IM_SAIN), 0),
		SUM(ISNULL( T1.IM_CXPA, 0 )), SUM(ISNULL( T1.IM_PAGO, 0 )), SUM(ISNULL( T1.IM_CONV, 0 )), 
		ISNULL(MAX(T3.IM_SAIN_CONV), 0), 0, '2', '2'
	FROM 	#TWDOCU_PROV_Q21_1 T1
    LEFT OUTER JOIN  (SELECT CO_MONE, SUM(ISNULL(IM_SAIN, 0)) IM_SAIN, 
						  SUM(ISNULL(IM_SAIN_CONV, 0)) IM_SAIN_CONV 
					FROM #TWDOCU_PROV_Q21_2 
					GROUP BY CO_MONE) T3
    ON T1.CO_MONE = T3.CO_MONE
    INNER JOIN TTMONE T2
    ON T1.CO_MONE = T2.CO_MONE 
	GROUP BY T1.CO_MONE 
	UNION ALL
	SELECT	MAX(T1.CO_EMPR), (SELECT MAX(CO_PROV) FROM #TWDOCU_PROV_Q21_1), T1.CO_MONE, ISNULL(MAX(T3.IM_SAIN), 0),

		0, 0, 0, ISNULL(MAX(T3.IM_SAIN_CONV), 0), 0, '2', '2'
	FROM 	#TWDOCU_PROV_Q21_2 T1
    LEFT OUTER JOIN (SELECT CO_MONE, SUM(ISNULL(IM_SAIN, 0)) IM_SAIN, 
						  SUM(ISNULL(IM_SAIN_CONV, 0)) IM_SAIN_CONV 
					FROM #TWDOCU_PROV_Q21_2 
					GROUP BY CO_MONE)T3
    ON T1.CO_MONE = T3.CO_MONE
    INNER JOIN TTMONE T2
    ON T1.CO_MONE = T2.CO_MONE 
	AND NOT EXISTS (SELECT 	T3.CO_EMPR
			FROM 	#TWDOCU_PROV_Q21_1 T3
			WHERE 	T1.CO_MONE = T3.CO_MONE )
	GROUP BY T1.CO_MONE
	UNION ALL
	SELECT	MAX(T1.CO_EMPR), MAX(T1.CO_PROV), '', 0, SUM(ISNULL( T1.IM_CXPA_CONV, 0 )),
		SUM(ISNULL( T1.IM_PAGO_CONV, 0 )), 0, ISNULL((SELECT SUM(ISNULL(IM_SAIN_CONV, 0)) IM_SAIN_CONV 
							FROM #TWDOCU_PROV_Q21_2 
							GROUP BY CO_EMPR), 0), 0, 
		'3', '2'
	FROM 	#TWDOCU_PROV_Q21_1 T1

	EXECUTE('
	SELECT  T1.CO_EMPR,  T3.DE_NOMB, T1.CO_PROV, T2.NO_AUXI, T1.CO_MONE, T4.SB_MONE, 
		T4.DE_MONE, T1.IM_SAIN, T1.IM_CXPA, T1.IM_PAGO, T1.IM_CONV, T1.IM_SAIN_CONV, 
		T1.IM_CONV_TOTA, T1.TI_DETA_EMPR, T1.TI_DETA_GENE, " "
	FROM 	#TWDOCU_PROV_Q21_3 T1
    INNER JOIN TMAUXI_EMPR T2
    ON 	T2.TI_AUXI_EMPR = "' + @ISTI_AUXI_PROV + '"
    AND	T1.CO_EMPR = T2.CO_EMPR
	AND	T1.CO_PROV = T2.CO_AUXI_EMPR
    INNER JOIN TMEMPR T3
    ON T1.CO_EMPR = T3.CO_EMPR
    LEFT OUTER JOIN TTMONE T4
    ON T1.CO_MONE = T4.CO_MONE 
	WHERE	(T1.IM_SAIN != 0
	OR 	T1.IM_SAIN_CONV != 0
	OR 	T1.IM_CXPA != 0 
	OR 	T1.IM_PAGO != 0)'+ @VSDE_ORDE)
END

RETURN


/*------------------------ Fin ------------------------------*/


GO
